package sfms.view;

import java.sql.Time;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import sfms.model.Facility;
import sfms.model.Venue;
import sfms.util.CustomDate;

public class Customer extends javax.swing.JFrame {

    private sfms.controller.Customer controller;
    
    public Customer(sfms.controller.Customer controller)
    {
        this.controller = controller;
        initComponents();setLocationRelativeTo(null);
        
        //controller.updateComboBox(selectDay, 0);
        
        addHooks();
        
        //Removes the ID column from the tableView but not the tableModel
        tableBookings.removeColumn(tableBookings.getColumnModel().getColumn(0));
        
        for (Object o: controller.getDays()){
            selectDay.addItem(o);
        }
    }
    
    /**
     * Adds the hooks for the controller
     */
    public final void addHooks(){
        controller.setBookingModel((DefaultTableModel)tableBookings.getModel());
        buttonCancelBooking.addActionListener(controller.getCancelBookingListener());
        controller.addBookings();
    }
    
    //Functions for the controller
    /**
     * 
     * @return Current selected row from tableBooking
     */
    public int getBookingRow(){
        return tableBookings.getSelectedRow();
    }
    
    public void setCancelBookingEnabled(boolean b){
        buttonCancelBooking.setEnabled(b);
    }
    
    public boolean isActivitySelected(){
        return (selectDay.getSelectedIndex() > 0) &&
        (selectFacility.getSelectedIndex() > 0) &&
        (selectSlot.getSelectedIndex() > 0) &&
        (selectVenue.getSelectedIndex() > 0);
    }
    
    public void setActivityOptions(int comboBoxNum){
        switch(comboBoxNum){
            case 0://We aren't adding anything.
                selectDay.setSelectedIndex(0);
            case 1:
                String facText = (String) selectFacility.getItemAt(0);
                selectFacility.removeAllItems();
                selectFacility.addItem(facText);
            case 2:
                String slotText = (String) selectSlot.getItemAt(0);
                selectSlot.removeAllItems();
                selectSlot.addItem(slotText);
            case 3:
                String venueText = (String) selectVenue.getItemAt(0);
                selectVenue.removeAllItems();
                selectVenue.addItem(venueText);
        }
        
        switch(comboBoxNum){
            case 1:
                if (selectDay.getSelectedIndex() > 0){
                    CustomDate d = (CustomDate) selectDay.getSelectedItem();
                    for (Object o: controller.getFacilities(d)){
                        selectFacility.addItem(o);
                    }
                }
                break;
            case 2:
                if (selectFacility.getSelectedIndex() > 0){
                    Facility f = (Facility) selectFacility.getSelectedItem();
                    if (controller.validateLicense(f)) {
                        for (Object o: controller.getSlots(f, (CustomDate) selectDay.getSelectedItem())){
                            selectSlot.addItem(o);
                        }
                    }
                }
                break;
            case 3:
                if (selectSlot.getSelectedIndex() > 0){
                    Facility f = (Facility) selectFacility.getSelectedItem();
                    for (Object o: controller.getVenues(f)){
                        selectVenue.addItem(o);
                    }
                }
                break;
        }
    }
    
    public void resetFacilitySection() {
        selectFacility.setSelectedIndex(0);
    }
    
    public void showBookings() {
        tabCustomer.setSelectedIndex(0);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        cMainPanel = new javax.swing.JPanel();
        tabCustomer = new javax.swing.JTabbedPane();
        bookingTab = new javax.swing.JPanel();
        currentBookingsLabel = new javax.swing.JLabel();
        currentBookingsScrollPane = new javax.swing.JScrollPane();
        tableBookings = new javax.swing.JTable();
        buttonCancelBooking = new javax.swing.JButton();
        activitiesTab = new javax.swing.JPanel();
        jLabel5 = new javax.swing.JLabel();
        aMotherFuckingPanel = new javax.swing.JPanel();
        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        selectDay = new javax.swing.JComboBox();
        jLabel2 = new javax.swing.JLabel();
        selectVenue = new javax.swing.JComboBox();
        selectFacility = new javax.swing.JComboBox();
        selectSlot = new javax.swing.JComboBox();
        buttonBook = new javax.swing.JButton();
        filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 0));
        menuBar = new javax.swing.JMenuBar();
        menuFile = new javax.swing.JMenu();
        itemLogout = new javax.swing.JMenuItem();
        itemExit = new javax.swing.JMenuItem();
        menuSettings = new javax.swing.JMenu();
        itemChangePassword = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Sports Facility Management System");
        setMinimumSize(new java.awt.Dimension(640, 480));
        setName("MainWindow"); // NOI18N

        cMainPanel.setLayout(new java.awt.BorderLayout());

        currentBookingsLabel.setFont(new java.awt.Font("Tahoma", 0, 36)); // NOI18N
        currentBookingsLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        currentBookingsLabel.setText("Your Current Bookings");

        tableBookings.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "ID", "Activity", "Venue", "Time"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.Integer.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tableBookings.getTableHeader().setReorderingAllowed(false);
        tableBookings.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                tableBookingsMouseClicked(evt);
            }
        });
        currentBookingsScrollPane.setViewportView(tableBookings);
        tableBookings.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        tableBookings.getColumnModel().getColumn(0).setResizable(false);
        tableBookings.getColumnModel().getColumn(1).setResizable(false);
        tableBookings.getColumnModel().getColumn(2).setResizable(false);
        tableBookings.getColumnModel().getColumn(3).setResizable(false);

        buttonCancelBooking.setText("Cancel Booking");
        buttonCancelBooking.setEnabled(false);

        javax.swing.GroupLayout bookingTabLayout = new javax.swing.GroupLayout(bookingTab);
        bookingTab.setLayout(bookingTabLayout);
        bookingTabLayout.setHorizontalGroup(
            bookingTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(bookingTabLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(bookingTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(currentBookingsLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 604, Short.MAX_VALUE)
                    .addComponent(currentBookingsScrollPane))
                .addContainerGap())
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, bookingTabLayout.createSequentialGroup()
                .addGap(0, 0, Short.MAX_VALUE)
                .addComponent(buttonCancelBooking, javax.swing.GroupLayout.PREFERRED_SIZE, 162, javax.swing.GroupLayout.PREFERRED_SIZE))
        );
        bookingTabLayout.setVerticalGroup(
            bookingTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(bookingTabLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(currentBookingsLabel)
                .addGap(18, 18, 18)
                .addComponent(currentBookingsScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 321, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(buttonCancelBooking))
        );

        tabCustomer.addTab("Booking", bookingTab);

        activitiesTab.setLayout(new java.awt.BorderLayout());

        jLabel5.setFont(new java.awt.Font("Lucida Grande", 0, 36)); // NOI18N
        jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel5.setText("Book an Activity");
        activitiesTab.add(jLabel5, java.awt.BorderLayout.PAGE_START);

        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel1.setText("Select Day:");

        jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel4.setText("Select Venue:");

        jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel3.setText("Select Available Slots:");

        selectDay.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "-Select a Date-" }));
        selectDay.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                selectDayActionPerformed1(evt);
            }
        });

        jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel2.setText("Select Facility Type:");

        selectVenue.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "-Select a Venue-" }));
        selectVenue.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                selectVenueActionPerformed(evt);
            }
        });

        selectFacility.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "-Select Facility-" }));
        selectFacility.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                selectFacilityActionPerformed(evt);
            }
        });

        selectSlot.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "-Select Time Slot-" }));
        selectSlot.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                selectSlotActionPerformed(evt);
            }
        });

        buttonBook.setText("Make Booking");
        buttonBook.setEnabled(false);
        buttonBook.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                buttonBookActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addComponent(buttonBook))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                    .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                .addGap(0, 0, Short.MAX_VALUE))
                            .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addComponent(selectSlot, 0, 300, Short.MAX_VALUE)
                            .addComponent(selectFacility, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(selectVenue, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(selectDay, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap(28, Short.MAX_VALUE)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(selectDay, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(selectFacility, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(selectSlot, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel3))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(selectVenue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(buttonBook)
                .addGap(22, 22, 22))
        );

        javax.swing.GroupLayout aMotherFuckingPanelLayout = new javax.swing.GroupLayout(aMotherFuckingPanel);
        aMotherFuckingPanel.setLayout(aMotherFuckingPanelLayout);
        aMotherFuckingPanelLayout.setHorizontalGroup(
            aMotherFuckingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(aMotherFuckingPanelLayout.createSequentialGroup()
                .addGroup(aMotherFuckingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(aMotherFuckingPanelLayout.createSequentialGroup()
                        .addGap(461, 461, 461)
                        .addComponent(filler1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(aMotherFuckingPanelLayout.createSequentialGroup()
                        .addContainerGap(56, Short.MAX_VALUE)
                        .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(0, 105, Short.MAX_VALUE))
        );
        aMotherFuckingPanelLayout.setVerticalGroup(
            aMotherFuckingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(aMotherFuckingPanelLayout.createSequentialGroup()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(filler1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(111, 111, 111))
        );

        activitiesTab.add(aMotherFuckingPanel, java.awt.BorderLayout.CENTER);

        tabCustomer.addTab("Activities", activitiesTab);

        cMainPanel.add(tabCustomer, java.awt.BorderLayout.CENTER);

        getContentPane().add(cMainPanel, java.awt.BorderLayout.CENTER);

        menuFile.setText("File");

        itemLogout.setText("Log Out");
        itemLogout.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itemLogoutActionPerformed(evt);
            }
        });
        menuFile.add(itemLogout);

        itemExit.setText("Exit");
        itemExit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itemExitActionPerformed(evt);
            }
        });
        menuFile.add(itemExit);

        menuBar.add(menuFile);

        menuSettings.setText("Settings");

        itemChangePassword.setText("Change Password");
        itemChangePassword.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itemChangePasswordActionPerformed(evt);
            }
        });
        menuSettings.add(itemChangePassword);

        menuBar.add(menuSettings);

        setJMenuBar(menuBar);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void itemExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itemExitActionPerformed
       dispose();
    }//GEN-LAST:event_itemExitActionPerformed

    private void buttonBookActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonBookActionPerformed
        makeBooking();
    }//GEN-LAST:event_buttonBookActionPerformed

    private void selectVenueActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectVenueActionPerformed
        //buttonBook.setEnabled(true);
        
        buttonBook.setEnabled(isActivitySelected());
    }//GEN-LAST:event_selectVenueActionPerformed

    private void selectSlotActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectSlotActionPerformed
        //controller.updateComboBox(selectVenue, 3);
        //selectVenue.setEnabled(true);
        setActivityOptions(3);
        buttonBook.setEnabled(isActivitySelected());
        
    }//GEN-LAST:event_selectSlotActionPerformed

    private void selectDayActionPerformed1(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectDayActionPerformed1
        //controller.updateComboBox(selectFacility, 1);
        //selectFacility.setEnabled(true);
        
        setActivityOptions(1);
        buttonBook.setEnabled(isActivitySelected());
    }//GEN-LAST:event_selectDayActionPerformed1

    private void selectFacilityActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectFacilityActionPerformed
        //controller.updateComboBox(selectSlot, 2);
        //selectSlot.setEnabled(true);
        
        setActivityOptions(2);
        buttonBook.setEnabled(isActivitySelected());
    }//GEN-LAST:event_selectFacilityActionPerformed

    private void tableBookingsMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tableBookingsMouseClicked
        // TODO add your handling cseleode here:
        if (getBookingRow() != -1){
            setCancelBookingEnabled(true);
        }
    }//GEN-LAST:event_tableBookingsMouseClicked

    private void itemLogoutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itemLogoutActionPerformed
        controller.logout();
    }//GEN-LAST:event_itemLogoutActionPerformed

    private void itemChangePasswordActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itemChangePasswordActionPerformed
        try {
            String password = ChangePassword.getPassword();
            if (ChangePassword.getLastError() != null) {
                JOptionPane.showMessageDialog(this, ChangePassword.getLastError(), "Error", JOptionPane.ERROR_MESSAGE);
            } else {
                if (controller.changePassword(password)) {
                    JOptionPane.showMessageDialog(this, "Your password has been changed.", "Success", JOptionPane.INFORMATION_MESSAGE);
                } else {
                    JOptionPane.showMessageDialog(this, new String[]{"Your password was not changed. Please", "ensure your password was entered correctly."}, "Error", JOptionPane.ERROR_MESSAGE);
                }
            }
        } catch (Exception e) {}
    }//GEN-LAST:event_itemChangePasswordActionPerformed

    /**
     * Invoked when the confirm button used by the modal dialog is pressed
     */
    void makeBooking()
    {
        controller.bookActivity(
            ((Venue) selectVenue.getSelectedItem()).getId(),
            (Time) selectSlot.getSelectedItem(),
            ((CustomDate) selectDay.getSelectedItem()).getSQLDate()
        );
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel aMotherFuckingPanel;
    private javax.swing.JPanel activitiesTab;
    private javax.swing.JPanel bookingTab;
    private javax.swing.JButton buttonBook;
    private javax.swing.JButton buttonCancelBooking;
    private javax.swing.JPanel cMainPanel;
    private javax.swing.JLabel currentBookingsLabel;
    private javax.swing.JScrollPane currentBookingsScrollPane;
    private javax.swing.Box.Filler filler1;
    private javax.swing.JMenuItem itemChangePassword;
    private javax.swing.JMenuItem itemExit;
    private javax.swing.JMenuItem itemLogout;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JMenuBar menuBar;
    private javax.swing.JMenu menuFile;
    private javax.swing.JMenu menuSettings;
    private javax.swing.JComboBox selectDay;
    private javax.swing.JComboBox selectFacility;
    private javax.swing.JComboBox selectSlot;
    private javax.swing.JComboBox selectVenue;
    private javax.swing.JTabbedPane tabCustomer;
    private javax.swing.JTable tableBookings;
    // End of variables declaration//GEN-END:variables
}
